package com.eorchis.module.trainingclass.domain;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Set;
import java.util.TreeSet;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.GenericGenerator;
import com.eorchis.core.basedao.entity.IBaseEntity;
import com.eorchis.core.basedao.entity.impl.AbstractBaseEntity;
import com.eorchis.module.basedata.domain.BaseData;
import com.eorchis.utils.utils.PropertyUtil;

/**
 * Title: TrainingClass<br>
 * Description: 培训班信息实体对象<br>
 * Company: GoldGov<br>
 * Copyright @ 2012 GoldGov .All rights reserved.<br>
 * @author Max
 * @createDate 2013-12-10
 * @version $Revision$
 */
@Entity
@Table(name = "TRAINING_CLASS")
@JsonIgnoreProperties(value={"scopeDepartment","signUpDepartment"})
public class TrainingClass extends AbstractBaseEntity implements IBaseEntity {
	private static final long serialVersionUID = 1L;
	/**
	 * 培训班类型编码
	 */
	public final static String CLASS_TYPE="CLASS_TYPE";
	/**
	 * 培训类别编码
	 */
	public final static String TRAINING_TYPE="TRAINING_TYPE";
	
	/**
	 * 网上专题班
	 * */
	public final static String TRAINING_TYPE_WSZTB="wsztb";
	/**
	 * 培训时间单位编码
	 */
	public final static String TIME_UNIT="TIME_UNIT";
	
	/**
	 * 干教处
	 * */
	public final static Integer MECHANISM_TYPE_ZERO=new Integer(0);
	
	/**
	 * 一级机构
	 * */
	public final static String MECHANISM_TYPE_ONE=new String("1");
	
	/**
	 * 一级机构
	 * */
	public final static String MECHANISM_TYPE_THREE=new String("3");
	
	/**
	 * 同步网上专题班webService地址
	 * */
	public final static String WLZTB_WSDL_CLASS_URL=new String("http://ntschool.bjce.gov.cn/ntschool/webservice/thematicClassWebService?wsdl");
	
	/**
	 * 二级机构
	 * */
	public final static String MECHANISM_TYPE_TWO=new String("2");
	
	/**
	 * 报名方式编码
	 */
	public final static String APPLY_WAY="APPLY_WAY";
	/**
	 * 报名方式：点名调训
	 */
	public final static String APPLY_WAY_DMTX="dmtx";
	/**
	 * 报名机构设置编码
	 */
	public final static String SET_APPLY_ORGAN="SET_APPLY_ORGAN";
	/**
	 * 离岗状态编码
	 */
	public final static String BEOFF_CODE="BEOFF_CODE";
	/**
	 * 培训机构编码
	 */
	public final static String TRAINING_ORGANIZATION="TRAINING_ORGANIZATION";
	/**
	 * 机构具体名称编码
	 */
	public final static String TRAINING_ORGANIZATION_BASENAME="TRAINING_ORGANIZATION_BASENAME";
	/**
	 * 院校名称编码
	 */
	public final static String YXMC="YXMC";
	
	/**
	 * 超级管理员
	 */
	public final static String SUPER_ADMIN="super_admin";
	/**
	 * 一级管理员
	 */
	public final static String TRAINING_FIRST_ADMIN="training_first_admin";
	/**
	 * 二级管理员
	 */
	public final static String TRAINING_SECOND_ADMIN="training_second_admin";
	/**
	 * 房山单位编码
	 */
	public final static String FANGSHANQU="fsq";
	
	/**
	 * 活动状态：活动
	 */
	public final static Integer IS_ACTIVE_Y = new Integer(1);
	/**
	 * 活动状态：作废
	 */
	public final static Integer IS_ACTIVE_N = new Integer(2);
	
	/**
	 * 发布状态：已发布
	 */
	public final static Integer IS_PUBLISH_Y = new Integer(1);
	/**
	 * 发布状态：未发布
	 */
	public final static Integer IS_PUBLISH_N = new Integer(2);
	
	/**
	 * 开班状态：开班
	 */
	public final static Integer IS_OPENSTATE_Y = new Integer(1);
	/**
	 * 开班状态：未开班
	 */
	public final static Integer IS_OPENSTATE_N = new Integer(2);
	
	/**
	 * 结班状态：结班
	 */
	public final static Integer IS_ENDSTATE_Y = new Integer(3);
	/**
	 * 结班状态：未结班
	 */
	public final static Integer IS_ENDSTATE_N = new Integer(2);
	
	/**
	 *考核锁定状态：锁定
	 */
	public final static Integer IS_LOCK_Y = new Integer(1);
	
	/**
	 *考核锁定状态：未锁定
	 */
	public final static Integer IS_LOCK_N = new Integer(2);
	
	/**
	 * 班级类型：区级班
	 */
	public final static String Q_CLASS_TYPE="qjb";
	
	/**
	 * 班级类型：市级班
	 */
	public final static String S_CLASS_TYPE="sjb";
	/**
	 * 班级类型：单位班
	 */
	public final static String D_CLASS_TYPE="dwb";
	/**
	 * 班级类型：单位上报的市级班
	 */
	public final static String DS_CLASS_TYPE="dwsbsjb";
	
	/**
	 * 上报状态
	 */
	public final static Integer IS_REPORT_Y=new Integer(1);
	/**
	 * 未上报状态
	 */
	public final static Integer IS_REPORT_N=new Integer(2);
	/**
	 * 项目审批状态 通过
	 */
	public final static Integer IS_AUDIT_Y=new Integer(1);
	/**
	 * 项目审批状态 未通过
	 */
	public final static Integer IS_AUDIT_N=new Integer(2);
	
	/**
	 * 项目审批状态 未审核
	 */
	public final static Integer IS_N_AUDIT=new Integer(3);
	/**
	 * 学员审批状态  通过
	 */
	public final static Integer IS_STUAUDIT_Y=new Integer(1);

	public final static String TRAINING_DEPT="trainingDept";
	
	
	/**
	 *正在报名
	 */
	public final static Integer IS_SIGNUP_BEGIN=new Integer(1);
	/**
	 * 报名未开始
	 */
	public final static Integer IS_SIGNUP_N=new Integer(2);
	
	/**
	 * 报名结束
	 */
	public final static Integer IS_SIGNUP_END=new Integer(3);
	
	/**
	 *已完善
	 */
	public final static Integer PERFECTSTATE_Y=new Integer(1);
	/**
	 * 指定报名单位
	 * */
	public final static Integer SIGNUPOr_Y=new Integer(1);
	/**
	 * 不指定报名单位
	 * */
	public final static Integer SIGNUPOr_N=new Integer(2);
	/**
	 *未完善
	 */
	public final static Integer PERFECTSTATE_N=new Integer(2);
	/**
	 * 班级类型：定向班
	 */
	public final static String DXB_CLASS_TYPE="dxb";
	/**
	 * 班级类型：普通班
	 */
	public final static String PTB_CLASS_TYPE="ptb";
	/**
	 * 班级类型：国防班
	 */
	public final static String GFB_CLASS_TYPE="gfb";
	
	/**
	 * 离岗状态：脱产
	 */
	public final static String FULL_TIME_YES="tc";
	/**
	 * 离岗状态：不脱产
	 */
	public final static String FULL_TIME_NO="btc";
	
	/**
	 * 已分配单位
	 */
	public final static Integer IS_ALLOTDEPT_Y = new Integer(1);
	/**
	 * 未分配单位
	 */
	public final static Integer IS_ALLOTDEPT_N = new Integer(2);
	
	/**
	 * 实名评估
	 * */
	public final static Integer QUESTIONNAIRE_METHOD_TYPE_S=new Integer(1);
	/**
	 * 匿名评估
	 * */
	public final static Integer QUESTIONNAIRE_METHOD_TYPE_N=new Integer(2);
	
	
	private String classId;//培训班ID        wtbwbb(委托部委办班)
	private String className;//培训班名称         wtbwbb(委托部委办班)
	private String classnameYear;//培训班名称--年度
	private BaseData classnamePeriod;//培训班名称--期数
	private String classnameUnit;//培训班名称--单位
	private String classMainName;//培训班名称—由年度+单位+期数+名称
	private String classNum;//班级编号      wtbwbb(委托部委办班)
	private BaseData classType;//培训班类型 数据字典
	private Integer classUserNum;//班级人数             wtbwbb(委托部委办班)
	private Double trainingHour;//培训学制（天）   wtbwbb(委托部委办班)
	private Date beginDate;//开班时间    wtbwbb(委托部委办班)
	private Date endDate;//结班时间        wtbwbb(委托部委办班)
	private Date enterBeginTime;//报名开始时间     wtbwbb(委托部委办班)
	private Date enterEndTime;//报名结束时间         wtbwbb(委托部委办班)
	private String trainingDeptId;//培训机构id
	private String trainingDeptName;//培训机构
	private BaseData applyWay;//报名方式 数据字典
	private String sponsorID;//主办单位
	private String sponsorName;//主办单位名称
	private String trainingAddress;//培训地点       wtbwbb(委托部委办班)
	private String classDescription;//调训对象     wtbwbb(委托部委办班)
	private Integer publishState;//发布状态            wtbwbb(委托部委办班)
	private Integer openState;//班级状态        wtbwbb(委托部委办班)
	private Integer endState;//结班状态
	private Integer signUpState;//报名状态 1正在报名,2未开始,报名结束    wtbwbb(委托部委办班)
	//活动状态
	private Integer reportState;//上报审核状态   wtbwbb(委托部委办班)
	private Date reportDate;//上报审核时间
	private Integer auditState;//项目审批状态     wtbwbb(委托部委办班)
	private Date auditDate;//项目审批时间
	private Integer perfectState;//项目完善状态
	private Integer allotDeptState;//分配单位状态
	private Date latestOperateDate;//最后操作时间
	
	private Integer signupOr;//判断 指定报名单位是否为空
	
	
	//部委选学报名系统字段
	private String ministrieID;//承办部委id       wtbwbb(委托部委办班)
	private String ministrieName;//创建单位
	private String classLevel;//班级级别,固定值 1：市  2：县      wtbwbb(委托部委办班)
	private String jointMinistrieID;//合办部委id       wtbwbb(委托部委办班)
	private String jointMinistrieName;//合办部委名称      wtbwbb(委托部委办班)
	private String contactPeople;//联系人
	private String contactTel;//联系电话
	private String fax;//传真
	private String selectedLetters;// 选调函
	private String expectTime;// 计划时间
	private String questionnaireUrl;// 问卷地址
	
	private Date assessStartTime;//评估开始时间
	private Date assessEndTime;//评估结束时间
	private String phone;//固定电话
	private Integer questionnaireMethod;//问卷评估方式,默认实名评估	1:实名	2:匿名
	private Integer lockState;//考核管理锁定状态
	
	private String categoryId;//培训类别
	private String beoffStation;//离岗状态
	
	private Date lastOperateTime;//最后操作时间
	
	private Set<ClassScopeDepartment> scopeDepartment= new TreeSet<ClassScopeDepartment>();//承办部门
	private Set<ClassSignUpDepartment> signUpDepartment= new TreeSet<ClassSignUpDepartment>();//报名部门
	
	/**
	 * 获取培训班ID
	 */	
	@Id
	@GeneratedValue(generator = "system-uuid")
	@GenericGenerator(name = "system-uuid", strategy = "uuid")
	@Column(name="CLASS_ID")
	public String getClassId() {
		return classId;
	}
	/**
	 * 设置培训班ID
	 */		
	public void setClassId(String classId) {
		this.classId = classId;
	}
	/**
	 * 获取培训班名称
	 */	
	@Column(name="CLASS_NAME")
	public String getClassName() {
		return className;
	}
	/**
	 * 设置培训班名称
	 */		
	public void setClassName(String className) {
		this.className = className;
	}
	/**
	 * 获取培训班名称--年度
	 */	
	@Column(name="CLASSNAME_YEAR")
	public String getClassnameYear() {
		return classnameYear;
	}
	/**
	 * 设置培训班名称--年度
	 */		
	public void setClassnameYear(String classnameYear) {
		this.classnameYear = classnameYear;
	}
	
	/**
	 * 获取培训班名称--单位
	 */	
	@Column(name="CLASSNAME_UNIT")
	public String getClassnameUnit() {
		return classnameUnit;
	}
	/**
	 * 设置培训班名称--单位
	 */		
	public void setClassnameUnit(String classnameUnit) {
		this.classnameUnit = classnameUnit;
	}
	
	/**
	 * 获取培训班类型
	 */	
	@ManyToOne( fetch = FetchType.LAZY, optional = true)
	@JoinColumn(name = "CLASS_TYPE", referencedColumnName = "DATA_CODE")
	public BaseData getClassType() {
		return classType;
	}
	
	/**
	 * 设置培训班类型
	 */		
	public void setClassType(BaseData classType) {
		this.classType = classType;
	}
	
	/**
	 * 获取班级人数
	 */	
	@Column(name="CLASS_USER_NUM")
	public Integer getClassUserNum() {
		return classUserNum;
	}
	/**
	 * 设置班级人数
	 */		
	public void setClassUserNum(Integer classUserNum) {
		this.classUserNum = classUserNum;
	}
	
	/**
	 * 获取培训课时
	 */	
	@Column(name="TRAINING_HOUR")
	public Double getTrainingHour() {
		return trainingHour;
	}
	/**
	 * 设置培训课时
	 */		
	public void setTrainingHour(Double trainingHour) {
		this.trainingHour = trainingHour;
	}
	
	/**
	 * 获取开班时间
	 */	
	@Column(name="BEGIN_DATE")
	@Temporal(TemporalType.TIMESTAMP)
	public Date getBeginDate() {
		return beginDate;
	}
	/**
	 * 设置开班时间
	 */		
	public void setBeginDate(Date beginDate) {
		this.beginDate = beginDate;
	}
	/**
	 * 获取结班时间
	 */	
	@Column(name="END_DATE")
	@Temporal(TemporalType.TIMESTAMP)
	public Date getEndDate() {
		return endDate;
	}
	/**
	 * 设置结班时间
	 */		
	public void setEndDate(Date endDate) {
		this.endDate = endDate;
	}

	
	/**
	 * 获取报名开始时间
	 */	
	@Column(name="ENTER_BEGIN_TIME")
	@Temporal(TemporalType.TIMESTAMP)
	public Date getEnterBeginTime() {
		return enterBeginTime;
	}
	/**
	 * 设置报名开始时间
	 */		
	public void setEnterBeginTime(Date enterBeginTime) {
		this.enterBeginTime = enterBeginTime;
	}
	/**
	 * 获取报名结束时间
	 */	
	@Column(name="ENTER_END_TIME")
	@Temporal(TemporalType.TIMESTAMP)
	public Date getEnterEndTime() {
		return enterEndTime;
	}
	/**
	 * 设置报名结束时间
	 */		
	public void setEnterEndTime(Date enterEndTime) {
		this.enterEndTime = enterEndTime;
	}
	/**
	 * 获取报名方式
	 */	
	@ManyToOne( fetch = FetchType.LAZY, optional = true)
	@JoinColumn(name = "APPLY_WAY", referencedColumnName = "DATA_CODE")
	public BaseData getApplyWay() {
		return applyWay;
	}
	/**
	 * 设置报名方式
	 */		
	public void setApplyWay(BaseData applyWay) {
		this.applyWay = applyWay;
	}
	/**
	 * 获取培训地点
	 */	
	@Column(name="TRAINING_ADDRESS")
	public String getTrainingAddress() {
		return trainingAddress;
	}
	/**
	 * 设置培训地点
	 */		
	public void setTrainingAddress(String trainingAddress) {
		this.trainingAddress = trainingAddress;
	}
	/**
	 * 获取培训内容
	 */	
	@Column(name = "CLASS_DESCRIPTION")
	public String getClassDescription() {
		return classDescription;
	}
	/**
	 * 设置培训内容
	 */		
	public void setClassDescription(String classDescription) {
		this.classDescription = classDescription;
	}
	
	/**
	 * 获取发布状态
	 */	
	@Column(name="PUBLISH_STATE")
	public Integer getPublishState() {
		return publishState;
	}
	/**
	 * 设置发布状态
	 */		
	public void setPublishState(Integer publishState) {
		this.publishState = publishState;
	}
	/**
	 * 获取开班状态
	 */	
	@Column(name="OPEN_STATE")
	public Integer getOpenState() {
		return openState;
	}
	/**
	 * 设置开班状态
	 */		
	public void setOpenState(Integer openState) {
		this.openState = openState;
	}
	/**
	 * 获取最后操作时间
	 */	
	@Column(name="LATEST_OPERATE_DATE")
	public Date getLatestOperateDate() {
		return latestOperateDate;
	}
	/**
	 * 设置最后操作时间
	 */		
	public void setLatestOperateDate(Date latestOperateDate) {
		this.latestOperateDate = latestOperateDate;
	}
	
	/**
	 * 获取结班状态
	 */	
	@Column(name="END_STATE")
	public Integer getEndState() {
		return endState;
	}
	
	/**
	 * 设置结班状态
	 */	
	public void setEndState(Integer endState) {
		this.endState = endState;
	}
	
	/**
	 * 记录日志使用
	 */
	public String toString() {
		//return "";
		String beginDateStr="";//开班时间
		String endDateStr="";//结班时间
		String enterBeginTimeStr="";//报名开始时间
		String enterEndTimeStr="";//报名结束时间
		String createDateStr="";//创建时间
		String reportDateStr="";//提交审核时间
		String auditDateStr="";//审核时间
		String classTypeName="";//培训班类型
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
		SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
		if(PropertyUtil.objectNotEmpty(getBeginDate())){
			beginDateStr=sdf.format(getBeginDate());
		}
		if(PropertyUtil.objectNotEmpty(getEndDate())){
			endDateStr=sdf.format(getEndDate());
		}
		if(PropertyUtil.objectNotEmpty(getEnterBeginTime())){
			enterBeginTimeStr=sdf.format(getEnterBeginTime());
		}
		if(PropertyUtil.objectNotEmpty(getEnterEndTime())){
			enterEndTimeStr=sdf.format(getEnterEndTime());
		}
		if(PropertyUtil.objectNotEmpty(getCreateDate())){
			createDateStr=sd.format(getCreateDate());
		}
		if(PropertyUtil.objectNotEmpty(getReportDate())){
			reportDateStr=sd.format(getReportDate());
		}
		if(PropertyUtil.objectNotEmpty(getAuditDate())){
			auditDateStr=sd.format(getAuditDate());
		}
		if(PropertyUtil.objectNotEmpty(getClassType())){
			classTypeName=getClassType().getDataName();
		}
		return "培训班ID======>" + getClassId()+"\n培训班名称======>" + getClassMainName()+"\n培训班类型======>" + classTypeName+
				"\n班级编号======>"+ getClassNum()+"\n班级人数======>" + getClassUserNum()+
				"\n培训课时======>"+ getTrainingHour()+"\n开班时间======>" + beginDateStr+"\n结班时间======>"+ endDateStr+
				"\n报名开始时间======>"+ enterBeginTimeStr+"\n报名结束时间======>"+ enterEndTimeStr+   "\n举办院校id======>" + getTrainingDeptId()+
				"\n举办院校======>" + getTrainingDeptName()+"\n主办单位名称======>" + getSponsorName()+
				"\n授课地点======>" + getTrainingAddress()+"\n培训班简介======>" + getClassDescription()+
				"\n发布状态======>" + getPublishState()+"\n开结班状态======>" + getOpenState()+
				"\n活动状态======>" + getActiveState()+"\n提交审核状态======>" + getReportState()+"\n提交审核时间======>" + reportDateStr+
				"\n培训班审核状态======>" + getAuditState()+"\n培训班审核时间======>" + auditDateStr+"\n培训班创建时间======>" + createDateStr+
				"\n报名状态======>" + getSignUpState()+"\n项目完善状态======>" + getPerfectState()+
				"\n分配单位状态======>" + getAllotDeptState() +"\n固定电话=====>"+getPhone();	
	}
	
	
	@ManyToOne( fetch = FetchType.LAZY, optional = true)
	@JoinColumn(name = "CLASSNAME_PERIOD", referencedColumnName = "DATA_CODE")
	public BaseData getClassnamePeriod() {
		return classnamePeriod;
	}
	public void setClassnamePeriod(BaseData classnamePeriod) {
		this.classnamePeriod = classnamePeriod;
	}
//	public BaseData getClassnamePeriod() {
//		return classnamePeriod;
//	}
//	public void setClassnamePeriod(BaseData classnamePeriod) {
//		this.classnamePeriod = classnamePeriod;
//	}
	
	@Column(name="AUDIT_STATE")
	public Integer getAuditState() {
		return auditState;
	}
	
	
	public void setAuditState(Integer auditState) {
		this.auditState = auditState;
	}
	
	@Column(name="CLASS_MAIN_NAME")
	public String getClassMainName() {
		return classMainName;
	}
	public void setClassMainName(String classMainName) {
		this.classMainName = classMainName;
	}
	/**
	 * 获取项目审核时间
	 */	
	@Column(name="AUDIT_DATE")
	public Date getAuditDate() {
		return auditDate;
	}
	/**
	 * 设置项目审核时间
	 */	
	public void setAuditDate(Date auditDate) {
		this.auditDate = auditDate;
	}
	///////////////////////
	
	@Column(name="CLASS_NUM")
	public String getClassNum() {
		return classNum;
	}
	public void setClassNum(String classNum) {
		this.classNum = classNum;
	}
	
	@Column(name="TRAINING_DEPT_NAME")
	public String getTrainingDeptName() {
		return trainingDeptName;
	}
	public void setTrainingDeptName(String trainingDeptName) {
		this.trainingDeptName = trainingDeptName;
	}
	@Column(name="SPONSOR_ID")
	public String getSponsorID() {
		return sponsorID;
	}
	public void setSponsorID(String sponsorID) {
		this.sponsorID = sponsorID;
	}
	@Column(name="REPORT_STATE")
	public Integer getReportState() {
		return reportState;
	}
	public void setReportState(Integer reportState) {
		this.reportState = reportState;
	}
	@Column(name="REPORT_DATE")
	public Date getReportDate() {
		return reportDate;
	}
	public void setReportDate(Date reportDate) {
		this.reportDate = reportDate;
	}
	@Column(name="SPONSOR_NAME")
	public String getSponsorName() {
		return sponsorName;
	}
	public void setSponsorName(String sponsorName) {
		this.sponsorName = sponsorName;
	}
	
	@Column(name="TRAINING_DEPT_ID")
	public String getTrainingDeptId() {
		return trainingDeptId;
	}
	public void setTrainingDeptId(String trainingDeptId) {
		this.trainingDeptId = trainingDeptId;
	}
	
	@Column(name="SIGNUP_STATE")
	public Integer getSignUpState() {
		return signUpState;
	}
	public void setSignUpState(Integer signUpState) {
		this.signUpState = signUpState;
	}
	
	@Column(name="PERFECT_STATE")
	public Integer getPerfectState() {
		return perfectState;
	}
	public void setPerfectState(Integer perfectState) {
		this.perfectState = perfectState;
	}
	
	@Column(name="ALLOTDEPT_STATE")
	public Integer getAllotDeptState() {
		return allotDeptState;
	}
	public void setAllotDeptState(Integer allotDeptState) {
		this.allotDeptState = allotDeptState;
	}
	@Column(name="MinisTRIE_ID")
	public String getMinistrieID() {
		return ministrieID;
	}
	public void setMinistrieID(String ministrieID) {
		this.ministrieID = ministrieID;
	}
	@Column(name="MinisTRIE_NAME")
	public String getMinistrieName() {
		return ministrieName;
	}
	public void setMinistrieName(String ministrieName) {
		this.ministrieName = ministrieName;
	}
	@Column(name="class_level")
	public String getClassLevel() {
		return classLevel;
	}
	public void setClassLevel(String classLevel) {
		this.classLevel = classLevel;
	}
	@Column(name="joint_ministrie_id")
	public String getJointMinistrieID() {
		return jointMinistrieID;
	}
	public void setJointMinistrieID(String jointMinistrieID) {
		this.jointMinistrieID = jointMinistrieID;
	}
	@Column(name="joint_ministrie_name")
	public String getJointMinistrieName() {
		return jointMinistrieName;
	}
	public void setJointMinistrieName(String jointMinistrieName) {
		this.jointMinistrieName = jointMinistrieName;
	}
	@Column(name="contact_people")
	public String getContactPeople() {
		return contactPeople;
	}
	public void setContactPeople(String contactPeople) {
		this.contactPeople = contactPeople;
	}
	@Column(name="contact_tel")
	public String getContactTel() {
		return contactTel;
	}
	public void setContactTel(String contactTel) {
		this.contactTel = contactTel;
	}
	@Column(name="fax")
	public String getFax() {
		return fax;
	}
	public void setFax(String fax) {
		this.fax = fax;
	}
	@Column(name="selected_letters")
	public String getSelectedLetters() {
		return selectedLetters;
	}
	public void setSelectedLetters(String selectedLetters) {
		this.selectedLetters = selectedLetters;
	}
	@Column(name="expect_time")
	public String getExpectTime() {
		return expectTime;
	}
	public void setExpectTime(String expectTime) {
		this.expectTime = expectTime;
	}
	@Column(name="QUESTIONNAIRE_URL")
	public String getQuestionnaireUrl() {
		return questionnaireUrl;
	}
	public void setQuestionnaireUrl(String questionnaireUrl) {
		this.questionnaireUrl = questionnaireUrl;
	}
	@Column(name="ASSESS_START_TIME")
	public Date getAssessStartTime() {
		return assessStartTime;
	}
	public void setAssessStartTime(Date assessStartTime) {
		this.assessStartTime = assessStartTime;
	}
	@Column(name="ASSESS_END_TIME")
	public Date getAssessEndTime() {
		return assessEndTime;
	}
	public void setAssessEndTime(Date assessEndTime) {
		this.assessEndTime = assessEndTime;
	}
	@Column(name="SIGNUPOR")
	public Integer getSignupOr() {
		return signupOr;
	}
	public void setSignupOr(Integer signupOr) {
		this.signupOr = signupOr;
	}
	
	@OneToMany(mappedBy = "trainingClass", fetch = FetchType.LAZY)
	public Set<ClassScopeDepartment> getScopeDepartment() {
		return scopeDepartment;
	}
	public void setScopeDepartment(Set<ClassScopeDepartment> scopeDepartment) {
		this.scopeDepartment = scopeDepartment;
	}
	
	@OneToMany(mappedBy = "trainingClass", fetch = FetchType.LAZY)
    @Cascade(CascadeType.SAVE_UPDATE)
	public Set<ClassSignUpDepartment> getSignUpDepartment() {
		return signUpDepartment;
	}
	public void setSignUpDepartment(Set<ClassSignUpDepartment> signUpDepartment) {
		this.signUpDepartment = signUpDepartment;
	}
	
	@Column(name="PHONE")
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}
	
	@Column(name="questionnaire_Method")
	public Integer getQuestionnaireMethod() {
		return questionnaireMethod;
	}
	public void setQuestionnaireMethod(Integer questionnaireMethod) {
		this.questionnaireMethod = questionnaireMethod;
	}
	
	@Column(name="lock_State")
	public Integer getLockState() {
		return lockState;
	}
	public void setLockState(Integer lockState) {
		this.lockState = lockState;
	}
	@Column(name="category_Id")
	public String getCategoryId() {
		return categoryId;
	}
	public void setCategoryId(String categoryId) {
		this.categoryId = categoryId;
	}
	@Column(name="beoff_Station")
	public String getBeoffStation() {
		return beoffStation;
	}
	public void setBeoffStation(String beoffStation) {
		this.beoffStation = beoffStation;
	}
	
	@Column(name="last_operate_time")
	public Date getLastOperateTime() {
		return lastOperateTime;
	}
	public void setLastOperateTime(Date lastOperateTime) {
		this.lastOperateTime = lastOperateTime;
	}

}
